}
}
- if ( pagetable_get_pfn(v->arch.monitor_table) == 0 )
+ if ( pagetable_is_null(v->arch.monitor_table) )
{
mfn_t mmfn = shadow_make_monitor_table(v);
v->arch.monitor_table = pagetable_from_mfn(mmfn);
- v->arch.monitor_vtable = sh_map_domain_page(mmfn);
}
if ( v->arch.shadow.mode != old_mode )
return;
}
- sh_unmap_domain_page(v->arch.monitor_vtable);
old_mfn = pagetable_get_mfn(v->arch.monitor_table);
v->arch.monitor_table = pagetable_null();
new_mfn = v->arch.shadow.mode->make_monitor_table(v);
v->arch.monitor_table = pagetable_from_mfn(new_mfn);
- v->arch.monitor_vtable = sh_map_domain_page(new_mfn);
SHADOW_PRINTK("new monitor table %"SH_PRI_mfn "\n",
mfn_x(new_mfn));
//SHADOW_PRINTK("p2m audit starts\n");
- test_linear = ( (d == current->domain) && current->arch.monitor_vtable );
+ test_linear = ( (d == current->domain)
+ && !pagetable_is_null(current->arch.monitor_table) );
if ( test_linear )
local_flush_tlb();
unsigned long cr3; /* (MA) value to install in HW CR3 */
void *guest_vtable; /* virtual addr of pagetable */
- root_pgentry_t *monitor_vtable; /* virtual addr of monitor_table */
/* Current LDT details. */
unsigned long shadow_ldt_mapcnt;